package vip.xiaonuo.biz.modular.lancerGoods.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import vip.xiaonuo.biz.modular.pojo.domain.BizGoods;
import com.baomidou.mybatisplus.extension.service.IService;
import vip.xiaonuo.biz.modular.pojo.dto.add.GoodsAddDTO;
import vip.xiaonuo.biz.modular.pojo.dto.common.CommonDeleteDTO;
import vip.xiaonuo.biz.modular.pojo.dto.common.CommonDetailDTO;
import vip.xiaonuo.biz.modular.pojo.dto.edit.AttributeEdit;
import vip.xiaonuo.biz.modular.pojo.dto.edit.GoodsEditDTO;
import vip.xiaonuo.biz.modular.pojo.dto.edit.GoodsEditStatusDTO;
import vip.xiaonuo.biz.modular.pojo.dto.page.GoodsPageDTO;
import vip.xiaonuo.biz.modular.pojo.vo.KV;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
* @author LancerAdmin
* @description 针对表【biz_goods(商品信息)】的数据库操作Service
* @createDate 2024-02-29 14:54:24
*/
public interface BizGoodsService extends IService<BizGoods> {



    BizGoods detail(CommonDetailDTO dto);

    void add(GoodsAddDTO dto);

    void delete(List<CommonDeleteDTO> dto);

    void edit(GoodsEditDTO dto);

    void editStatus(GoodsEditStatusDTO dto);

    Page<BizGoods> pageLAdmin(GoodsPageDTO dto);

    List<BizGoods> getAllGoodsByGoodsBox(GoodsPageDTO dto);
    // 镇店之宝
    Page<BizGoods> pageLClient(GoodsPageDTO dto);

    List<KV> INTRODUCTIONAttr(CommonDetailDTO dto);

    List<KV> STANDARDSAttr(CommonDetailDTO dto);

    void UpdateINTRODUCTIONAttr(AttributeEdit dto);

    void UpdateSTANDARDSAttr(AttributeEdit dto);

    Page<BizGoods> pageBus(GoodsPageDTO dto);


    String buyGoods(String id, Integer count);

    void buyGoodsByAliPay(String id, Integer count, HttpServletResponse httpResponse);

    void payBack(HttpServletRequest request);

    void redGoodsNumberByGoodsId(String id);
    void insGoodsNumberByGoodsId(String id);
    // 创建未付款的订单id到Redis中
    void addUnPaid(String orderId);

    boolean isPaid(String orderId);

    void closeOrder(String orderId);

    void buyGoodsByAliPayAndOrderId(String orderId, HttpServletResponse httpResponse);
}
